From: Mathieu Malaterre Date: Thu, 18 Nov 2021 07:39:15 +0000 (+0100) Subject: d/patches: Fix unit test suite on big endian machine X-Git-Tag: archive/raspbian/3.6.9-4+rpi1^2~120 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=1340d26034c6d852523827814d834f55b5ddfd52;p=dcmtk.git d/patches: Fix unit test suite on big endian machine --- diff --git a/debian/patches/bigendian.patch b/debian/patches/bigendian.patch new file mode 100644 index 00000000..d6a9018c --- /dev/null +++ b/debian/patches/bigendian.patch @@ -0,0 +1,106 @@ +Author: Mathieu Malaterre +Description: Fix unit test suite on big endian machine + Concatenation of upstream commit: + . + - b499d89e769feffce03c5d7cefa1cb06d33a2b5b + - 9e8434a2952ae39d1f9d0914173b5cc5b1b32175 + - 4df0f42790b9952aa75c7242fbcc47a348922bc6 +Forwarded: not-needed + +--- + dcmect/tests/t_roundtrip.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: dcmtk/dcmect/tests/t_roundtrip.cc +=================================================================== +--- dcmtk.orig/dcmect/tests/t_roundtrip.cc ++++ dcmtk/dcmect/tests/t_roundtrip.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2019-2020, OFFIS e.V. ++ * Copyright (C) 2019-2021, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -28,6 +28,9 @@ + + #include "dcmtk/dcmect/enhanced_ct.h" + ++#include "dcmtk/dcmdata/dcxfer.h" ++#include "dcmtk/dcmdata/dcswap.h" ++ + #include "dcmtk/dcmfg/concatenationcreator.h" + #include "dcmtk/dcmfg/concatenationloader.h" + #include "dcmtk/dcmfg/fgctacquisitiondetails.h" +@@ -295,7 +298,6 @@ static void addSharedFGs(EctEnhancedCT* + OFCHECK(exp_item->setCTDIVol(0.1).good()); + CodeSequenceMacro* phantom_item = new CodeSequenceMacro("113682", "DCM", "ACR Accreditation Phantom - CT"); + exp_item->getCTDIPhantomTypeCodeSequence().push_back(phantom_item); +- OFCHECK(exp_item->setEstimatedDoseSaving(0.2).good()); + OFCHECK(exp_item->setExposureInMas(0.3).good()); + OFCHECK(exp_item->setExposureModulationType("WEIRD").good()); + OFCHECK(exp_item->setExposureTimeInMs(0.4).good()); +@@ -619,6 +621,7 @@ static void checkConcatenationInstance(s + // Check that all pixels are set to their original source instances frame number (starting from 1) + for (size_t pix = 0; pix < NUM_PIXELS_PER_FRAME; pix++) + { ++ swapIfNecessary(gLocalByteOrder, EBO_LittleEndian, &frame[pix], 2, sizeof(Uint16)); + OFCHECK(frame[pix] == numInstance + 1); + } + delete concat; +@@ -658,7 +661,11 @@ static void prepareExpectedDump() + { + EXPECTED_DUMP += "\n"; + EXPECTED_DUMP += "# Dicom-Data-Set\n"; +- EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ // DcmDataset.print() produces dumps in local endianess, so make sure the dump reflects the current machine ++ if (gLocalByteOrder == EBO_LittleEndian) ++ EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ else ++ EXPECTED_DUMP += "# Used TransferSyntax: Big Endian Explicit\n"; + EXPECTED_DUMP += "(0008,0008) CS [ORIGINAL\\PRIMARY\\VOLUME\\MAXIMUM] # 32, 4 ImageType\n"; + EXPECTED_DUMP += "(0008,0016) UI =EnhancedCTImageStorage # 28, 1 SOPClassUID\n"; + EXPECTED_DUMP +@@ -789,7 +796,7 @@ static void prepareExpectedDump() + EXPECTED_DUMP += " (fffe,e00d) na (ItemDelimitationItem for re-encoding) # 0, 0 ItemDelimitationItem\n"; + EXPECTED_DUMP += " (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem\n"; + EXPECTED_DUMP += " (0018,9321) SQ (Sequence with explicit length #=1) # 0, 1 CTExposureSequence\n"; +- EXPECTED_DUMP += " (fffe,e000) na (Item with explicit length #=10) # 0, 1 Item\n"; ++ EXPECTED_DUMP += " (fffe,e000) na (Item with explicit length #=9) # 0, 1 Item\n"; + EXPECTED_DUMP += " (0018,115e) DS [0.5] # 4, 1 " + "ImageAndFluoroscopyAreaDoseProduct\n"; + EXPECTED_DUMP +@@ -807,7 +814,6 @@ static void prepareExpectedDump() + += " (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem\n"; + EXPECTED_DUMP + += " (0018,9323) CS [WEIRD] # 6, 1 ExposureModulationType\n"; +- EXPECTED_DUMP += " (0018,9324) FD 0.2 # 8, 1 EstimatedDoseSaving\n"; + EXPECTED_DUMP += " (0018,9328) FD 0.4 # 8, 1 ExposureTimeInms\n"; + EXPECTED_DUMP += " (0018,9330) FD 0.7 # 8, 1 XRayTubeCurrentInmA\n"; + EXPECTED_DUMP += " (0018,9332) FD 0.3 # 8, 1 ExposureInmAs\n"; +Index: dcmtk/dcmseg/tests/troundtrip.cc +=================================================================== +--- dcmtk.orig/dcmseg/tests/troundtrip.cc ++++ dcmtk/dcmseg/tests/troundtrip.cc +@@ -31,6 +31,7 @@ + #include "dcmtk/dcmfg/fgplanpo.h" + #include "dcmtk/dcmfg/fgseg.h" + #include "dcmtk/dcmiod/iodmacro.h" ++#include "dcmtk/dcmdata/dcxfer.h" + #include "dcmtk/ofstd/ofmem.h" + #include "dcmtk/ofstd/ofstrutl.h" + #include "dcmtk/ofstd/oftempf.h" +@@ -406,7 +407,11 @@ static void prepareExpectedDump() + { + EXPECTED_DUMP = "\n"; + EXPECTED_DUMP += "# Dicom-Data-Set\n"; +- EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ // DcmDataset.print() produces dumps in local endianess, so make sure the dump reflects the current machine ++ if (gLocalByteOrder == EBO_LittleEndian) ++ EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ else ++ EXPECTED_DUMP += "# Used TransferSyntax: Big Endian Explicit\n"; + EXPECTED_DUMP += "(0008,0008) CS [DERIVED\\PRIMARY] # 16, 2 ImageType\n"; + EXPECTED_DUMP += "(0008,0016) UI =SegmentationStorage # 28, 1 SOPClassUID\n"; + EXPECTED_DUMP diff --git a/debian/patches/series b/debian/patches/series index 3d54b1ba..01b30684 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 01_dcmtk_3.6.0-1.patch 03_datadic_install.patch 07_dont_export_all_executables.patch +bigendian.patch